![]() ![]() ![]()
|
许可证文件格式
附录 B
许可证文件的开头一般是一个 SERVER 行(对于三服务器冗余服务器,为三行),其后是一行或多行 VENDOR 行,再往后是一行或多行 FEATURE 或 INCREMENT 行。在某些情况下,许可证文件不需要使用 SERVER 行和 VENDOR 行。
可以修改许可证文件中的以下元素:
使用“\”续行符来截断很长的行。
许可证文件、选项文件、日志文件和 FLEXenabled 应用程序环境对 8 位拉丁字符提供完全支持。
关于 SERVER 和 VENDOR 行要求的详细信息,请参见“计数和不计数的许可证”。
![]()
FLEXnet Licensing 版本注释
许可证文件语法
许可证文件样例
下面是具有两个功能的某个供应商的许可证文件示例。
SERVER my_server 17007ea8 1700
VENDOR sampled
FEATURE f1 sampled 1.000 01-jan-2005 10 SIGN=9BFAC0316462
FEATURE f2 sampled 1.000 01-jan-2005 10 SIGN=1B9A308CC0F7许可证文件使主机标识为“17007ea8”的许可服务器系统“my_server”能够为每个功能(“f1”和“f2”)向网络上的所有用户提供 10 个浮动许可证。
SERVER 行
SERVER 行指定许可服务器系统的主机名和主机标识,以及许可服务器管理器 (
lmgrd) 的 TCP/IP 端口号。通常一个许可证文件有一个 SERVER 行。如果有三个 SERVER 行,则说明使用的是三服务器冗余许可服务器系统。如果没有 SERVER 行,则说明许可证文件中的所有 FEATURE 和 INCREMENT 行都是不计数的。SERVER 行中的主机标识被计算为每个 FEATURE 和 INCREMENT 行的许可证号或签名。为此,请确保将 SERVER 行与相应的 FEATURE/INCREMENT 行放在一起,使之保持供应商发放许可证时的状态。
SERVER 行的格式为:
SERVER
hosthostid[port] [PRIMARY_IS_MASTER] [SERVER_TIMEOUT=seconds]其中:
例如:
SERVER my_server 17007ea8 21987
三服务器冗余配置
组成三服务器冗余配置的计算机必须可进行畅通的通信联络,且彼此之间的物理距离必须很近。这种冗余结构要求服务器定期交换重要数据,通信能力差将导致性能降低。避免使用速度较慢的通信或拨号连接来配置冗余服务器。
在每个服务器计算机本地(而不是文件服务器)上保留一份相同的许可证文件副本(以及
lmgrd和供应商守护程序二进制文件)。如果不这样做,会失去使用冗余服务器的所有好处,因为保存这些文件的文件服务器变成了一个单独的故障点。通过将三个 SERVER 行置于许可证文件中来指定三服务器冗余配置。在所有三个文件中,一组三个 SERVER 行必须以相同的顺序显示,每行对应一个指定的服务器。在任何指定时间,lmgrd 都具有主机服务器的概念,其职责包括:
默认情况下,主服务器即为主机服务器;当主服务器发生故障时,转换主机服务器职责的方法由 PRIMARY_IS_MASTERBy 参数控制。
为什么冗余配置中需要三个许可服务器系统?
为了提供许可服务器系统故障保护,多个冗余服务器系统(每个系统在其各自的计算机上运行)必须能够提供同一组计数许可证。但是,为确保软件发布商许可证的一致性和安全性,这些冗余许可服务器系统必须确保每次只能由其中一个提供许可证。
给定的一组计数许可证通过许可证文件中的 SERVER 行绑定到指定数目的冗余许可服务器计算机的主机标识。通过这种方式,每个许可服务器系统知道如何与绑定到同一组计数许可证的其他冗余许可服务器系统进行通信。启动时,每个服务器系统将确定是否可以与其他冗余许可服务器系统进行通信。当组内所有成员都可以与该组中的其他服务器通信时,就会形成冗余许可服务器系统组。
该组一旦形成,将确保每次只有其中一个许可服务器能够提供许可证。但是,FLEXnet Licensing 必须确保在所有冗余许可服务器中只能形成一个这样的组。为了确保只形成一个组,只有包含的冗余许可服务器数目超过一半的组才能提供许可证。该许可服务器组称为“多数”。“多数”之外的许可服务器(包括无法与其冗余许可服务器的其他任意服务器进行通信的单个许可服务器)拒绝提供许可证。“多数”之外的许可服务器会继续运行,但是只能继续尝试加入“多数”或形成“多数”(如果“多数”不存在)。
如果某个许可服务器系统检测到自己无法再与“多数”进行通信,该服务器系统在恢复通信之前将拒绝提供许可证。如果“多数”成员确定其无法与足够数目的其他许可服务器进行通信,并导致不能构成“多数”,这些服务器系统将拒绝提供许可证。
如果 FLEXnet Licensing 允许将一组计数许可证仅绑定到两个冗余许可服务器系统,那么根据上述规则,只有包含的冗余许可服务器总数超过一半的组才可以提供许可证。对于仅有两个成员的组,意味着这两个许可服务器必须保持持续通信,并且均不能出现故障。也就是说,大于二的一半的数值只有二,这不是故障保护解决方案。
显然,出于“多数”的需要,要使用的冗余许可服务器系统的数目应为奇数。如果所使用许可服务器的数目为偶数,则需要将一个额外的许可服务器添加到“多数”中,而不增加值。出于简单易用的目的,FLEXnet Licensing 仅支持三个冗余许可服务器,因为三是大于一的最小奇数。
请参见
- “FEATURE/INCREMENT 行”,以获得关于不计数功能的详细信息。
- 第 4 章“选择许可服务器计算机”,以获得关于冗余服务器的详细信息。
![]()
FLEXnet Licensing 版本注释
VENDOR 行
VENDOR 行指定守护程序的名称和路径,
lmgrd使用此行来启动供应商守护程序,供应商守护程序读取它来查找其选项文件。VENDOR 行的格式如下所示。VENDOR
vendor[vendor_daemon_path]\
[[OPTIONS=]options_file_path] [[PORT=]port]其中:
请参见
- 关于选项文件内容的详细信息,请参见第 5 章“选项文件”。
![]()
FLEXnet Licensing 版本注释
USE_SERVER 行
USE_SERVER 不接受任何参数,对服务器没有影响。当应用程序看到 USE_SERVER 后,除了前面带有 SERVER 行的内容以外,它将忽略许可证文件中的所有其他内容,并向供应商守护程序传递检出验证。
建议使用 USE_SERVER,因为在使用许可服务器系统时它可以提高性能。对于不计数功能,守护程序使用 USE_SERVER 强制记录使用情况。
FEATURE/INCREMENT 行
FEATURE 行描述使用产品所必需的许可证。INCREMENT 行可代替 FEATURE 行,也可用于不断地将许可证添加到许可证文件中以前的 FEATURE 或 INCREMENT 行上。
供应商守护程序只处理给定功能的第一个 FEATURE 行。如果要获得同一功能的额外副本(例如,要获得多个节点锁定的计数功能),必须使用多个 INCREMENT 行。INCREMENT 行基于以下字段构成许可证组或 pools:
如果两行中的这些字段有差别,供应商守护程序中会创建一个名为许可证池的新许可证组,并且这个组与具有相同功能名的其他许可证池分开计数。FEATURE 行并不给出额外的许可证,而 INCREMENT 行则总是给出额外的许可证。
基本 FEATURE/INCREMENT 行的格式:
{FEATURE|INCREMENT}
featurevendorfeat_versionexp_date\num_licSIGN=sign[optional_attributes]FEATURE/INCREMENT 行关键字后必须有六个字段,并且这六个字段的顺序是固定的。它们由供应商定义,不能更改。表 B-1 按这些字段必须出现的顺序进行了介绍。
表 B-1: FEATURE/INCREMENT 行必需的字段 字段 说明feature 供应商给出的功能名。vendor 供应商守护程序的名称;在 VENDOR 行也可找到。指定的守护程序为此功能提供服务。feat_version 许可证支持的此功能的版本。exp_date 许可证的有效日期,格式为dd-mmm-yyyy, 例如:07-may-2005。注意:如果exp_date是字符串“permanent”,或者年份是 0(或 00、000、0000),则许可证永不过期。num_lic 此功能的并发许可证数量。如果num_lic设置为字符串“uncounted”或 0,则此功能的许可证是不计数的,不需要使用lmgrd,但是需要在 FEATURE 行中提供主机标识。请参见“计数和不计数的许可证”。SIGN=sign或AUTH=... SIGN= 用于验证这一 FEATURE 行的签名。如果发布商已使用公共供应商守护程序技术展开其供应商守护程序,则将在 AUTH= 关键字内嵌入许可证书签名。详细信息请与发布商联系。
表 B-2 列出了可能出现在 FEATURE 或 INCREMENT 行中的属性。这些属性由供应商根据需要来提供,用于实现各种许可方式。它出现在 FEATURE 或 INCREMENT 行中,必须保持原样,不能由最终用户修改。这些属性具有
keyword=value语法,其中keyword要大写。当
value为包括在双引号 ("...") 中的字符串时,该字符串可以包含除引号以外的任何字符。
表 B-2: 供应商提供的属性 属性 说明BORROW[=n] 为特定的 FEATURE/INCREMENT 行启用许可证借用功能。n为借用许可证的小时数。默认的借用期为 168 小时,或一星期。DUP_GROUP=... 其语法为:DUP_GROUP=NONE|SITE|[UHDV]U = DUP_USER
H = DUP_HOST
D = DUP_DISPLAY
V = DUP_VENDOR_DEF允许使用 UHDV 的任意组合,并且 DUP_MASK 是组合的 OR 运算。例如,DUP_GROUP=UHD 表示重复的分组是 (DUP_USER|DUP_HOST|DUP_DISPLAY),因此,对于在同一主机和显示器上的用户来说,额外使用该功能不会占用额外的许可证。FLOAT_OK
[=server_hostid] 通过使用 FLOAT_OK 指定的 FLEXid 为特定的 FEATURE/INCREMENT 行启用移动许可。同时,此 FEATURE/INCREMENT 行必须节点锁定到 FLEXid。当在一个 FEATURE 行中指定 FLOAT_OK=server_hostid时:HOSTID="hostid1
[hostid2 ...
hostidn]" 与 FEATURE 行绑定的主机的 ID。hostid由lmhostid实用程序确定。不计数许可证要求使用此字段,而计数许可证也可以使用此字段。详细信息请参见附录 A“支持 FLEXnet Licensing 的平台的主机标识”。HOST_BASED[=n] 主机名必须在最终用户选项文件的 INCLUDE 语句中指定,而且主机数量的限制为num_lic或=n中指定的值。ISSUED=dd-mmm-yyyy 许可证的发放日期。ISSUER="..." 许可证的发放者。LINGER=n 供应商为此许可证定义的延期间隔时间。在选项文件中使用 LINGER 来延长这个时间。详细信息请参见“LINGER”。NOTICE="..." 知识产权通告字段。OVERDRAFT=n 透支政策允许供应商指定用户除了已经购买的许可证以外,还可以使用的额外许可证数量。从而允许用户在“临时透支”的情况下仍能继续使用。超出许可证限制的使用情况由 FLEXnet Manager 报告工具报告。PLATFORMS="..." 仅限于在所列出的平台上使用。SN=serial_num 序列号,用于识别 FEATURE 或 INCREMENT 行。START=dd-mmm-yyyy 开始日期。SUITE_DUP_GROUP=... 与 DUP_GROUP 相似,但是只影响为软件包启用 FEATURE 行。它将软件包的用户总数限制为许可证的数量,并允许检出了 SUITE 的用户共享该软件包。SUPERSEDE="f1 f2 ..." 如果出现这一行,那么在ISSUED=中指定的日期以前发放的所有许可证均被这一行取代,并因此而失效。TS_OK 当节点锁定的不计数许可证在 Windows 终端服务器下运行时,FLEXnet Licensing 进行检测。要通过终端服务器客户端窗口运行应用程序,必须向 FEATURE 行添加TS_OK。如果没有TS_OK,将拒绝向终端服务器客户端上运行的用户发放许可证。USER_BASED[=n] 用户必须在最终用户选项文件的 INCLUDE 语句中指定,而且用户数量的限制为num_lic或=n中指定的值。VENDOR_STRING=
"..." 供应商定义的字符串,包括在双引号中。
表 B-3 中列出的属性是可选的,由最终用户控制。这些属性具有
keyword=value语法,其中keyword要小写。
表 B-3: 最终用户属性 属性 说明asset_info="..." 许可证管理员提供的用于资产管理的额外信息。dist_info="..." 软件分销商提供的额外信息。sort=nnn 指定许可证文件中行的排列次序。请参见“优先级顺序”。user_info="..." 许可证管理员提供的额外信息。vendor_info="..." 软件供应商提供的额外信息。
例如:
FEATURE sample_app sampled 2.300 31-dec-2005 20 \
SIGN=123456789012
INCREMENT f1 sampled 1.000 permanent 5 \
HOSTID=INTERNET=195.186.*.* NOTICE="Licensed to \
Sample corp" SIGN=901234567890优先级顺序
当 FLEXnet Licensing 对许可证文件中的 FEATURE/INCREMENT 行进行处理时,将自动对它们进行排序;默认排序规则如下:
要关闭自动排序,请将
sort=nnn添加到 FEATURE/INCREMENT 行中,其中nnn在所有行中均相同;nnn指定了相对的排列次序。默认的排列次序值为100。排列次序值小于100的行排在所有未标记此属性的行之前,排列次序值大于100的行排在所有未标记此属性的行之后。排列次序数值相同的所有行将按照它们在文件中出现的顺序进行排序。
![]()
FLEXnet Licensing 版本注释
- v7.1 以前版本的 FEATURE/INCREMENT 行格式使用
license_key:{FEATURE|INCREMENT}
featurevendorfeat_versionexp_datenum_liclicense_key[optional_atributes]当前客户端程序库和供应商守护程序能够识别 v7.1 以前版本的格式。
- SIGN= 关键字在客户端程序库和供应商守护程序 v7.1 版中引入。
- 在客户端程序库和供应商守护程序的 v7.1 至 v8.0 中,FEATURE/INCREMENT 行必须包含 SIGN= 签名,并且为了与 v8.1 以前的版本兼容,也可以包括 license_key:
{FEATURE|INCREMENT}
featurevendorfeat_versionexp_date\num_lic[license_key] SIGN=sign \[optional_attributes]- 客户端程序库和供应商守护程序 v8.1 废弃了
license_keyexp_date的关键字“permanent”在客户端程序库 v6 中引入。num_lic的关键字“uncounted”在客户端程序库 v6 中引入。- BORROW 关键字在客户端程序库和供应商守护程序 v8.0 中引入。
- FLOAT_OK 关键字在客户端程序库和供应商守护程序 v8.0 中引入。
- TS_OK 关键字在客户端程序库和供应商守护程序 v8.0 中引入。
- AUTH 关键字在客户端程序库和供应商守护程序 v10.8 中引入。
PACKAGE 行
PACKAGE 行的目的是支持两种不同的许可证发放需要:
PACKAGE 行本身并不授权任何事情 - 它必须与 FEATURE/INCREMENT 行配合,一起对整个软件包授权许可。PACKAGE 行由软件供应商随产品提供,不受任何许可证约束。日后,在购买该软件包的许可证时,一个或多个相应的 FEATURE/INCREMENT 行就可以启用该 PACKAGE 行。
例如:
PACKAGE
packagevendor[pkg_version] COMPONENTS=pkg_list\
[OPTIONS=SUITE] [SUPERSEDE[="p1 p2 ..."] ISSUED=date]
SIGN=pkg_sign表 B-4 列出了 PACKAGE 行字段。它们必须按照列出的顺序出现。
例如:
PACKAGE suite sampled 1.0 SIGN=3B24B2F508CB \
COMPONENTS="comp1 comp2" OPTIONS=SUITE
FEATURE suite sampled 1.0 1-jan-0 5 SIGN=4193E6ABCCCB这是一个典型的
OPTIONS=SUITE样例。它定义了两种功能,即“comp1”和“comp2”,每种都是 1.0 版,而且每种都有五个永不过期的许可证。在签出“comp1”或“comp2”时,也会签出“suite”。PACKAGE suite sampled 1.0 SIGN=2CBF44FCB9C1 \
COMPONENTS="apple:1.5:2 orange:3.0:4"
FEATURE suite sampled 1.0 1-jan-2005 3 SIGN=321E78A17EC1 SN=123在本例中,组件的版本取代了功能的版本,任何组件可以使用的许可证数量等于“suite”的三个许可证与该组件的许可证数量的乘积。结果等于:
FEATURE apple sampled 1.5 1-jan-2005 6 SIGN=0D3AD5F26BEC SN=123
FEATURE orange sampled 3.0 1-jan-2005 12 SIGN=EB16C5AE61F0 SN=123
![]()
FLEXnet Licensing 版本注释
UPGRADE 行
UPGRADE
featurevendorfrom_feat_versionto_feat_version\exp_datenum_lic[options ...] SIGN=sign除增加了
from_feat_version字段以外,所有数据都与 FEATURE 或 INCREMENT 行相同。UPGRADE 行删除任何旧版本 (>=from_feat_version) 中指定的所有许可证,并创建一个具有相同许可证数量的新版本。例如,以下两行:
INCREMENT f1 sampled 1.000 1-jan-2005 5 SIGN=9BFAC0316462
UPGRADE f1 sampled 1.000 2.000 1-jan-2005 2 SIGN=1B9A308CC0F7提供了“f1”的三个 v1.0 许可证和“f1”的两个 v2.0 许可证。
UPGRADE 行作用于最接近它的前一个 FEATURE 或 INCREMENT 行(其版本号 >=
from_feat_version并且 <to_feat_version)。
注意:UPGRADE 行对于节点锁定的不计数许可证不起作用。
十进制格式
许可证也可以用十进制格式来表示。十进制具有易于输入的优点,使用十进制的许可证号通常都会短很多。
便于阅读的许可证样例如下:
FEATURE f1 sampled 1.00 1-jan-2005 0
key1HOSTID=DEMO对应的十进制格式为:
sampled-f1-00737-55296-1825
如果需要,在许可证文件中,十进制行可与便于阅读的行混合使用。使用
lminstall命令可以把十进制许可证转换为便于阅读的格式。请参见
- 关于
lminstall命令的详细信息,请参见“lminstall”。
![]()
FLEXnet Licensing 版本注释
许可证文件顺序
许可证文件中行的顺序并不重要。在处理时对它们进行排序,是为了在大多数情况下得到最优结果。但是,v7.0 以前版本的 FLEXenabled 应用程序和许可服务器系统对许可证文件中行的顺序有隐含的要求。请注意以下关于许可证文件行排序的建议:
- 对于同一功能,将 FEATURE 行放在 INCREMENT 行之前。
与 FEATURE 行相关的规则为:许可服务器系统只观察第一个计数的 FEATURE 行。因此,如果有一个 FEATURE 行和几个 INCREMENT 行,则 FEATURE 行必须放在最前面。
- 如果同一个功能具有多个计数的 FEATURE 行,请确保将需要的 FEATURE 行放在最前面。
除第一个以外,其余均被忽略。
- 对于同一个 FEATURE,请将节点锁定的、不计数的行放在浮动行之前。
否则,有可能会消耗浮动许可证,而不是消耗节点锁定的许可证,从而导致拒绝其他用户。
- USE_SERVER 行的位置会影响许可方式。
建议使用 USE_SERVER 行。通常情况下,USE_SERVER 行紧跟在 SERVER 行之后。但是,请将非 SERVER 提供的不计数许可证放到 USE_SERVER 行之前。确保需要使用不计数许可证的用户可以直接访问文件的当前副本。将 USE_SERVER 紧跟在 SERVER 行之后放置的好处在于,用户不需要该许可证文件的最新副本。
请参见
- “优先级顺序”
![]() |
![]() |
![]() ![]() ![]()
|
| FLEXnet Licensing 最终用户手册 |
| 版本 10.8 |
| 2005 年 5 月 |
| 版权 |